Computing systems are often designed around a fine balance of power consumption and performance. Demand for ever-higher computing performance continues to outpace the power availability of modern systems. Many modern computing systems are categorized as mobile and rely on battery power. These include laptop computers, tablets and cellphones. Significant achievements have been made in battery technology yielding smaller, more efficient, and often reusable cells. However, processing demands, driven by high-bandwidth software applications and high-fidelity graphics rendering, too often negate those achievements. High-performance computing systems can drain the most advanced battery in a relatively brief period of time.
Power efficiency has become a hallmark of computing system design, driving advances in energy efficient communication protocols, displays and processing. Wireless communication networks rely heavily on a robust electrical grid and battery technology to power high frequency antennas, transmitters and receivers. Display technology has evolved from simple mono-color liquid crystal displays (LCDs), to multi-color LCDs, to touchscreens and light emitting diode (LED) displays. Processing speed, a basic measure of microprocessor performance, is restrained by a system's ability to power high performance processors and to dissipate the heat generated by such components. High-speed processors perform more operations per second, demanding more energy and generating more heat than slower alternatives. Heat may be dissipated by mechanisms as simple as cooling fans and heat sinks; or as elaborate as liquid cooling systems. More often than not, cooling systems demand even more power from the system. These consequences combine effectively to tamp down microprocessor performance in the name of reduced power consumption.
Power management features appear on many computing devices, aiding in striking the balance of power efficiency and performance. Such features include powering down idle connections, displays and even processes, conserving energy for peak usage periods. Another example is to dynamically scale the clock frequency of a microprocessor, or central processing unit (CPU). Dynamic frequency scaling, or “CPU throttling,” allows a computing system to adjust the speed of a microprocessor to meet the operational processing demand of a current processing load. Under high processing load, the clock frequency may be scaled up allowing the computing system to execute more operations per second and to consume more power. Likewise, under low processing load, the clock frequency may be scaled down to conserve power as there are more available clock cycles than there are operations to execute. In other words, in a period of time when the processor is under-loaded, there are “wasted” clock cycles.
CPU processing load is a valuable measure of a computing system's performance. If a system is over-loaded, the processing load exceeds the processing bandwidth of the system's processing cores. Dynamic frequency scaling based on processing load allows the system to recognize the processing load and scale up the processor speed (or speeds in a multi-core system), thereby broadening the processing bandwidth of the system. Conversely, the processing bandwidth is tightened under low processing load conditions.
As more computing systems have become restrained by power availability, dynamic frequency scaling has become more prevalent. Monitoring processing loads on microprocessors has been the lynchpin in understanding and appropriately scaling processor speeds yielding the power efficiency necessary to meet the high performance demands on modern computing systems.